import HTMLParser
import urllib
import re
import string


urlString = "http://www.hkix.net/hkix/connected.htm"
urlText = []
pathOut = "ixp_members.txt"


class Parse27 (HTMLParser.HTMLParser):
    
    # conta le colonne per individuare quella contenente l'ASN
    count = 0
    # indica quando iniziare il conteggio delle colonne
    begin = False
    
    def handle_starttag (self, tag, attrs):
        if tag == "th":
            self.begin = True
        if tag == "tr":
            self.count = 0
        if tag == "td" and self.begin == True:
            self.count += 1
            
    def handle_endtag (self, tag):
        if tag == "table" and self.begin == True:
            self.begin = False
    
    def handle_data (self, data):
        if self.count == 3 and re.match("^\s*\d+\s*$",data):
            data = string.strip(data)
            if data not in urlText:
                urlText.append(data)


lparser = Parse27()
page = urllib.urlopen(urlString).read()
# modifico il codice html perche' scritto male, altrimenti il parser non funziona
# devo mantenere <th> perche' su tale tag si basa l'inizio del parsing
page = re.sub("<th[^>]*<span[^>]*>", "<th>", page)
lparser.feed(page)
fileOut = open(pathOut, "a")
for item in urlText:
    #print item # debug
    print >> fileOut, "27 %s" % item
fileOut.close()